诸子笔会 | 肖文棣:安全自动化之思考
自2021年6月起,安在征文全新“改版”——“诸子笔会,打卡征文”。简单来说,我们在诸子云社群招募“志愿者”,组成“笔友群”,自拟每月主题,互相督促彼此激励,完成每月一篇原创,在诸子云知识星球做主题相关每日打卡,同时邀请专业作者群内分享,互通交流。我们的目标,不仅是在持续8个月时间里,赢取累计8.8万的高额奖金,更是要探索一种脑力激荡、知识分享的新思路和新玩法。本期发文,即诸子笔会月度主题来稿之一。
安全自动化之思考
文 | 肖文棣
肖文棣
晨星资讯(深圳)有限公司
安全架构师
OWASP中国广东分会负责人,获得华中科技大学软件工程专业工程硕士学位,持有CISSP、AWS助理解决方案架构师和AWS安全专家等认证。现任晨星资讯(深圳)有限公司安全架构师职务,负责应用安全设计、管理和评审等工作。
安全自动化是指运用技术,在减少人工辅助的情况下执行各项任务,以集成安全流程、应用和基础架构。安全自动化狭义上指的是安全运营自动化,比如SOAR等,广义上指的是在软件开发周期内的相关安全活动的自动化,如DevSecOps等。
亚马逊首席技术官、副总裁Werner在CSS2019的演讲中表示,安全不仅仅是安全团队的任务,而是每个工程师都需要关注到的内容,网络安全自动化是大势所趋。他表示:“我们应该很大程度上尽可能把安全操作都进行自动化,这样才可以让客户以自我保护的方式更好地保护自己。”
2015年总共曝出781起网络安全事件,造成1.69亿个人数据泄漏,而且泄露数字还在逐年上升。
世界没有绝对安全的公司,包括顶尖的安全公司,要么公司被网络攻击了,要么不知道公司被网络攻击了。数据表明全球只有38%的公司有信心说自己准备好迎击高级网络攻击了。
随着网络的规模和复杂程度不断增加,手工管理安全和合规工作变得越来越困难。手动操作可能导致问题检测和修复缓慢、而且资源配置错误和策略应用不一致会使系统的合规性风险增加,也使得企业遭受网络攻击的风险增加。
自动化可以帮助企业简化日常运维,并从一开始就将安全防护集成到流程、应用和基础架构中。有数据表明,通过全面部署安全自动化,可以让因数据泄漏造成的平均损失降低95%。
十年前,大多数公司还是足以应付网络攻击,但是今天的IT面对的是高级持续性威胁(APT),更重要的是,这些攻击已经不是人工攻击,而是通过自动化的机器人程序发起的攻击。IT员工在这种密集的持续的攻击面前根本力不从心,不仅因为人类无法跟上汹涌而来的海量攻击,还因为手动处理这些攻击没有办法做到快速高效。这就是自动化需要走上舞台的原因,我们要以机器对机器,机器攻击必须要有机器防御。
安全自动化还是企业数字化发展的内生需求,随着DevOps的流行,云和云原生等新技术的出现,安全为了适应快速的迭代开发和保障产品的安全,DevSecOps就应运而生,那么DevSecOps就是安全自动化的具体体现。
企业实现安全自动化,可能需要考虑以下方面:
(一) 什么事情对企业最重要
无论是对于一般的应用程序还是对于云原生应用程序,DevSecOps扫描源代码中的已知漏洞,确认应用程序依赖项目的当前版本用于构建代码,或者检查生产中运行的应用程序是否保持最新版本,而且还在搜索将应用程序与其他所需组件封装在一起的容器中的漏洞。
企业要确保应用程序平台、工具链和开发人员客户端本身是安全的。其中完成不同任务需要不同的工具。但是,并非所有任务对于企业来说都同等重要。如果企业没有使用容器,那么容器扫描工具就不是必须的。如果在受到管制的环境中,则可能需要为某些类型的数据或通信优先考虑额外的安全级别。这一切都要依赖于威胁建模,威胁建模可以确定企业的最重要的风险,从而企业需要集中精力解决这些风险。
(二) 什么目标容易实现
全面实施安全自动化不是一件容易的事情,但是可以通过一些相对较小的改进来部分实施安全自动化。
例如,随着开源软件的广泛使用,开源代码正逐渐进入越来越多的应用程序中。Synopsys公司在其发布的《2020开源和风险分析报告》中指出,该公司审核了1253个应用程序,发现其中99%的应用程序包含开源组件,总的来说,70%的代码是开源的。分析报告还发现,82%的代码库的组件已过期4年以上,88%的代码库组件在过去两年中没有开发活动。
在现代开发中,企业无法避免使用开源库和其他组件。那么为了保证供应链安全,企业应该是从受信任的来源获取经过签名的软件,并使其保持最新状态。这个时候引入开源软件漏洞扫描以及开源软件管理并将其集成到开发流程中,实现安全自动化就是一件比较容易做好的事情。
(三) 文化胜过过程,过程胜过工具
工具很重要,企业可以利用工具的自动执行以提高企业安全。但是仅靠工具是不够的,还需要过程保障,要保证使用工具的过程是正确的,企业还需要一种安全文化,在这种文化中,安全是每个人都在考虑的事情,而不只是安全团队的事情。这也是亚马逊CTO所提倡的。
人人负责的安全文化并不意味着每个人都必须成为安全专家,但是每个人都需要了解安全相关的知识,如OWASP TOP 10。该列表包括诸如注入漏洞、跨站点脚本XSS、身份验证损坏等风险,并且每年都会更新。我们回顾历史列表会发现,风险的类型都是相似的,因为人性都是相似的,如果不是每个人都重视安全,那么风险就会一次再一次地历史重现。
(四) 安全左移
人人负责的安全文化,可靠的安全过程,并在整个过程中使用安全工具,其结果是安全内置。但是即使最终在代码投入生产之前发现了所有的安全漏洞,这也意味着现在必须从头开始修复漏洞,所以我们要尽早发现安全漏洞,这就意味着安全左移。根据漏洞修复成本曲线,漏洞的修复成本是指数式增长的。产品运营阶段修复漏洞的成本是产品设计阶段修复漏洞成本的几十倍。
(五) 安全自动化与运营团队的关系
历史上,DevOps是以开发人员为中心,这经常会忽略安全性。然而,安全自动化对运营团队同样重要。以前,修复安全漏洞可能是修复长时间运行的虚拟机或服务器实例中的漂移或其他问题。而现在更有可能是关闭一个容器并启动一个新容器。
但是,需要知道哪些容器需要更新并构建,构建这些容器需要包括针对新问题的安全修补程序,并且在不停机的情况下快速将这些更新的容器投入生产。
如果人工处理,这些工作量是巨大而去容易出错。所以,监控容器并根据需要更新它们需要可靠的自动化技术。这也是安全自动化需要包括的。
安全团队是非常渴求自动化的,但这种渴望受制于怀疑和恐惧。怀疑自动化的准确性,恐惧自动化的后果。
恐惧丧失控制—在很多情况下,自动化的最大障碍只不过是臆想中的控制权丧失。事实上,合适的自动化工具反而能提高可见性,增强对安全过程的控制力。
怀疑自动化的准确性——技术高明的员工总是产生自己比机器更好的错觉。对技术的不信任是一个难以跨越的巨大障碍,但最终,由于攻击类型、频率和复杂性上的发展,这种争论毫无意义。因为员工最终会发现自己越来越力不从心去应对越来越复杂,越来越频繁的攻击。
恐惧变化——对自动化最大的误解或者是担心自动化会一定程度上替代人类,造成员工失业。假设如果技术接管了事件响应过程,会发生什么呢?IT部门会被机器人顶替吗?事实上,尽管机器可以帮助人类做出决策,但是机器不能代替人类做出决策。
自动化能削减成本,简化连接,让员工可以从无意义的重复工作中解放而聚焦在更有价值的工作,但是机器永远不能代替人类做出决策,特别是一些需要精细入微的决策。
工欲善其事,必先利其器。自动化赋能安全。自动化是安全人员手中的神兵利器,自动化不会取代人类的工作,而应该是更有效地提高的人类的工作效率。
我们可以从这几个方面来认清这个事实。
力量对等——没有将军会愿意带着一支在数量、力量、技巧上都明显不如敌人的军队上战场。这一观念应用到网络防御上也同样适用。自动化能赋予安全防护以匹敌攻击的能力,提供最高等级的保护。面对自动化的攻击,我们呼唤自动化的防御。
效率提升——事件响应过程中加入自动化,有助于创建更均衡高效的环境。这不仅让公司能够应对APT等攻击,还从整体上提高了成本效益。
错误减少——近几年很多著名的网络安全事件都事出员工人为失误。即使经验最丰富的IT专家有时也会犯错。很不幸,有些错误造成的损失可能是天价。自动化能从部分或整个事件响应过程中剔除掉人为因素,从而解决犯错问题。
决策更好——IT主管面临的最大挑战就是要在事件处理中快速做出重大业务决策。自动化的另一项好处,恰是能轻点鼠标就收集、分析和优先排序关键数据,进一步增强威胁检测和事件管理过程。
推荐阅读
诸子笔会 | 7月征文主题《安全自动化》
诸子笔会 | 6月征文合集《安全数字化》
张永宏 刘志诚 孙琦 李磊 赵锐 于闽东肖文棣 顾伟 侯大鹏 蔚晨 杨文斌 月奖公布
齐心抗疫 与你同在